import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'

import toast from 'components/common/toast'

import VueLazyload from 'vue-lazyload'

import 'assets/css/base.css'

import 'assets/js/rem.js'

Vue.config.productionTip = false

/**
 * 事件总线 一个管理不同组件的互相关联事件的处理方法
 * 处理不同组件（相互无直接关联，互相触发监听事件比较麻烦）
 * 一个组件通过 this.$bus.$emit('someEvent') 来将事件发送到总线上
 * 另外一个组件通过 this.$bus.on('someEvent') 从总线中监听事件
 *
 * 这里就是 gooditem 组件监听 img 的 load 事件，发送一个事件到总线上
 * 然后，home 组件监听这个总线事件，实时改变 scroll 高度
 *
 * 通过创建一个 vue 实例 来定义总线
 */
Vue.prototype.$bus = new Vue()

// 自定义引入 toast 组件
Vue.use(toast)

// 图片懒加载插件，同时设置占位图片
Vue.use(VueLazyload, {
  error: require('assets/img/img_error.png'),
})

new Vue({
  router,
  store,
  render: (h) => h(App),
}).$mount('#app')
